package com.niit.base

/**
 * 总结：
 * 1.Scala中的Class和Java中的Class是不一样的。Scala的Class文件只能应用于面向对象中的模板概念，在Scala的Class中不能执行main
 * 2.print输出语句可以打印多个值，每个值以逗哈作为分隔符。
 * 3.多行代码写在同一行内，则前边的语句必须写分号，最后一条语句分号可以省略
 * 4.常量：字面值常量：整型常量，浮点型常量，字符型常量，字符串型常量，布尔型常量，空常量
 *        自定义常量 val 变量名:数据类型 = 数值
 * 5.变量: var 变量名:数据类型 = 数值
 * 6.类型推断：Scala可以自动根据变量的值来推断变量的类型 var/val 变量名 = 数值
 * 7.插入值表达式：用插入值表达式定义字符串，可以有效避免大量字符串的拼接 格式 val/var 变量名 = s"字符串${变量/表达式}字符串"
 * 8.三引号的使用： 如果有大段的文本需要保存，就可以使用三引号来定义字符串，会保存你的换行格式
 * 9.惰性赋值：当有一些变量保存的数据比较大的时候，而这些数据又不是马上要加载到JVM内存中，就可以使用惰性赋值来提高效率
 *    格式 lazy val 变量名 = 数值  注意：定义惰性赋值的时候只能使用val
 * 10.命名规范
 *        命名规则：
             * 必须由 大小写英文字母、数字、下划线_、美元符号$ 四部分任意组合。
             * 数字不能开头。
             * 不能和 Scala 关键字重名。
             * 最好做到见名知意。
         * 命名规范：
             * 变量或方法：小驼峰命名，从第二个单词开始每个单词首字母大写。
             * 类或特质：大驼峰命名，每个单词的首字母都大写。
             * 包：全部小写，一般是公司域名反写，多级包用.隔开。
 *
 */

object Base_02 {

  def main(args: Array[String]): Unit = {

    //println("hello World");print("hello","spark","kafka");print("123")
   //1.字面值常量
//    println(-10)//整型常量
//    println(10.3)//浮点型常量
//    println("asa")//字符串常量，双引号括起来的为字符串
//    println('b')//字符常量，单引号括起来的
//    println(true,false)//布尔型
//    println(null)//空常量
    //2.自定义常量
//    val name:String = "Tom"
//    println(name)
//    //3.变量
//    var age:Int = 23
//    println(age)
//    age=18
//    println(age)
    //3.类型推断
//    var schoolName = "GUET"//根据数值推断出SchoolName为字符串类型
//    val inSchoolTime = 2020
//    println(schoolName,inSchoolTime)

    //4.插入值表达式
    //需求：请定义若个变量，分别保存："张三"，23,"男"。定义一个字符串，显示 姓名：张三，年龄：23，性别：男
    //传统方式 字符串拼接的方式
//    val name="张三"
//    val age = 23
//    val sex = "男"
//    val info ="姓名："+name+",年龄："+age+",性别："+sex
//    println(info)
//    //插入值表达式方式 格式 val/var 变量名 = s"${变量/表达式}字符串"
//    val info2 = s"姓名:${name}，年龄：${age},性别：${sex}"
//    println(info2)

    //5.使用三引号  如果有大段的文本需要保存，就可以使用三引号来定义字符串，会保存你的换行格式
//    val three =
//      """
//        |Select
//        | *
//        |from
//        |   user
//        |where
//        |  name = zhangsan
//        |""".stripMargin
//    println(three)

    //6.了解：惰性赋值 当有一些变量保存的数据比较大的时候，而这些数据又不是马上要加载到JVM内存中，就可以使用惰性赋值来提高效率
    //格式 lazy val 变量名 = 数值  注意：定义惰性赋值的时候只能使用val
    lazy val sql =
    """
      |盼望着，盼望着，东风来了，春天的脚步近了。一切都像刚睡醒的样子，欣欣然张开了眼。山朗润起来了，水涨起来了，太阳的脸红起来了。
      |小草偷偷地从土里钻出来，嫩嫩的，绿绿的。园子里，田野里，瞧去，一大片一大片满是的。坐着，躺着，打两个滚，踢几脚球，赛几趟跑，捉几回迷藏。风轻悄悄的，草软绵绵的。
      |桃树、杏树、梨树，你不让我，我不让你，都开满了花赶趟儿。红的像火，粉的像霞，白的像雪。花里带着甜味儿；闭了眼，树上仿佛已经满是桃儿、杏儿、梨儿。
      |花下成千成百的蜜蜂嗡嗡地闹着，大小的蝴蝶飞来飞去。野花遍地是：杂样儿，有名字的，没名字的，散在草丛里，像眼睛，像星星，还眨呀眨的。
      |“吹面不寒杨柳风”，不错的，像母亲的手抚摸着你。风里带来些新翻的泥土的气息，混着青草味儿，还有各种花的香，都在微微润湿的空气里酝酿。
      |鸟儿将巢安在繁花嫩叶当中，高兴起来了，呼朋引伴地卖弄清脆的喉咙，唱出宛转的曲子，与轻风流水应和着。牛背上牧童的短笛，这时候也成天嘹亮地响着。
      |雨是最寻常的，一下就是三两天。可别恼。看，像牛毛，像花针，像细丝，密密地斜织着，人家屋顶上全笼着一层薄烟。树叶儿却绿得发亮，小草儿也青得逼你的眼。
      |傍晚时候，上灯了，一点点黄晕的光，烘托出一片安静而和平的夜。石桥边，有撑起伞慢慢走着的人，地里还有工作的农民，披着蓑戴着笠。他们的房屋，稀稀疏疏的在雨里静默着。
      |春天像刚落地的娃娃，从头到脚都是新的，它生长着。春天像小姑娘，花枝招展的，笑着，走着。春天像健壮的青年，有铁一般的胳膊和腰脚，领着我们上前去。
      |""".stripMargin
    println(sql)


  }

}
